Page({
  data: {
    point: '',
    building: '',
    room: '',
    name: "",
    gender: 1,
    mobile: "",
    idcardFrontUrl: '',
    idcardBackUrl: '',
  },
  // 点击提交审核
  async goList() {
    if (!this.verifyName() || !this.verifyMobile() || !this.verifyIdcard()) {
      return
    }
    // 现在开始发请求
    delete this.data.__webviewId__
    delete this.data.status
    const res = await wx.$http.post('/room', this.data)
    if (res.code !== 10000) return wx.$utilss.toast('添加房屋失败')
    wx.reLaunch({
      url: '/house_pkg/pages/list/index',
    })
  },
  removePicture(ev) {
    // 移除图片的类型（身份证正面或反面）
    const type = ev.mark?.type
    this.setData({
      [type]: ''
    })
  },
  onLoad({
    point,
    building,
    room,
    id
  }) {
    console.log(point, building, room, id);
    if (id) {
      // 如果有id那就是编辑页面 我们设置标题来区分
      wx.setNavigationBarTitle({
        title: '编辑房屋信息'
      })
      this.getHouseDetail(id)
    } else {
      // 没有id就是新增页面 我们设置标题来区分
      wx.setNavigationBarTitle({
        title: '新增房屋信息'
      })
      this.setData({
        point,
        building,
        room
      })
    }
  },
  // 编辑房屋信息的数据回显
  // 发送编辑的请求
  async getHouseDetail(id) {
    const res = await wx.$http.get(`/room/${id}`)
    if (res.code !== 10000) return wx.$utilss.toast('房屋信息获取失败')
    console.log(res);
    this.setData({
      ...res.data
    })
  },
  //上传照片
  chooseMedia(e) {
    const type = e.mark?.type
    wx.chooseMedia({
      count: 1,
      mediaType: 'image',
      sourceType: ['album', 'camera'],
      camera: 'back',
      success: (res) => {
        wx.uploadFile({
          url: wx.$http.baseURL + '/upload',
          filePath: res.tempFiles[0].tempFilePath,
          name: 'file', // 文件对应的 key
          header: { //HTTP 请求 Header
            //必须自己再传一下header，请求拦截器只是给wx.$http增加了拦截器
            Authorization: getApp().token,
          },
          // 需要改为箭头函数 不然不能使用this
          success: (res) => { // 接口调用成功的回调函数
            console.log(res.data)
            // 把字符串改成对象
            const updata = JSON.parse(res.data)
            console.log(updata);
            this.setData({
              [type]: updata.data.url
            })
          }
        })
      }
    })
  },

  // 姓名的正则校验 2-4个字符 
  verifyName() {
    // 写正则
    const res = /^(?:[\u4e00-\u9fa5·]{2,4})$/
    const ver = res.test(this.data.name.trim())
    if (!ver) wx.$utilss.toast('姓名校验失败')
    return ver
  },
  //手机的正则校验 
  verifyMobile() {
    const res = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
    const ver = res.test(this.data.mobile.trim())
    if (!ver) wx.$utilss.toast('手机号校验失败')
    return ver
  },
  // 身份证校验
  verifyIdcard() {
    // 两个感叹号 把数据强行改成布尔值
    const res = !!this.data.idcardFrontUrl && !!this.data.idcardBackUrl
    if (!res) wx.$utilss.toast('请上传身份证照片')
    return res
  }
})